const Mock = require('mockjs')

//! 下列方法均可以不传参数，也就是不加任何限定条件
//? 可以使用Mock.mock()里面传入占位符来进行随机生成,其中占位符可以带()也可以不带
//? 或者使用Mock里自带的一个Random方法，再点出Random下的方法

//* 布尔 Random.boolean( min?, max?, current? )
console.log(Mock.mock('@boolean'))
console.log(Mock.mock('@boolean()'))
console.log(Mock.Random.boolean(1, 9, true))

// !以下只使用Mock.Random方法进行示例

//* 自然数 Random.natural( min?, max? )
console.log(Mock.Random.natural(10, 100))

//* 整型 Random.integer( min?, max? )
console.log(Mock.Random.integer(10, 100))

//* 浮点 Random.float( min?, max?, dmin?, dmax? )
console.log(Mock.Random.float(10, 100, 3, 5))

//* 字符 Random.character( pool? ) Random.character( 'lower/upper/number/symbol' )
console.log(Mock.Random.character('lower'))
console.log(Mock.Random.character('upper'))
console.log(Mock.Random.character('number'))
console.log(Mock.Random.character('symbol'))

//* 字符串 Random.string( length )
console.log(Mock.Random.string())
//Random.string( pool, length )
// 字符串最简单的是参数只规定随机生成字符串的长度
console.log(Mock.Random.string(10))
// Random.string( pool?, min?, max? )
console.log(Mock.Random.string('symbol', 1, 4)) //给1-4个符号
// 可以规定字符串，然后规定随机的个数，将会在给定字符串中随机显示(可重复)
console.log(Mock.Random.string('SakumyZ', 5))

//* 日期 Random.date( format? ) 'yyyy-MM-dd(1996-05-09) yy-MM-dd(96-05-09)
console.log(Mock.mock('@date'))
// 获取随机时间戳
console.log(Mock.Random.date('T'))

//* 时间 Random.time( format? )
console.log(Mock.Random.time())
// 格式化时间
console.log(Mock.Random.time('HH:mm:ss'))
// 格式化时间，并且大写标注为AM还是PM
console.log(Mock.Random.time('A HH: mm: ss'))
// 格式化时间，并且小写标注为AM还是PM
console.log(Mock.Random.time('a HH: mm: ss'))

//* 系统时间  
console.log(Mock.Random.now())
// 跟精确到的时间（year month week day hour minute second）Ranndom.now( unit )
console.log(Mock.Random.now('year')) //以此类推
// 格式化时间 Ranndom.now( format )
console.log(Mock.Random.now('yyyy-MM-dd HH:mm:ss SS'))
// Ranndom.now(unit, format)
console.log(Mock.Random.now('day', 'yyyy-MM-dd HH:mm:ss SS'))

//* 图片 生成一张图片资源，为url
console.log(Mock.Random.image())
// 可规定图片大小，背景颜色，字体颜色，图片类型，图片文字
console.log(Mock.Random.image('200x100', '#894FC4', '#eee', 'png', 'hello'))

//* 颜色 生成16进制值(color hex) 或 rgb值 grba值 hsl值
console.log(Mock.Random.color())
console.log(Mock.Random.hex())
console.log(Mock.Random.rgb())
console.log(Mock.Random.rgba())
console.log(Mock.Random.hsl())

//* 文本
// 生成随机文章
// console.log(Mock.Random.paragraph())
// 可给定段落数
console.log(Mock.Random.paragraph(2))
// 段落数可给定区间
console.log(Mock.Random.paragraph(3, 5))

// 生成随机句子,同段落参数
console.log(Mock.Random.sentence(3, 5))

// 生成随机单词, 参数是给定单词的字母数，同样可以给定区间
console.log(Mock.Random.word(3, 5))

// 生成随机标题,参数是给定标题的单词数，可给定区间
console.log(Mock.Random.title(3, 5))

// 以上都有对应的中文版本,就是在前面加一个c
// 生成随机中文文章
console.log(Mock.Random.cparagraph(3, 5))
console.log(Mock.Random.csentence(3, 5))
// cword可以穿入候选值和从中选中的个数
console.log(Mock.Random.cword('零一二三四五六七八九十', 3))
console.log(Mock.Random.ctitle(3, 5))

//* 名字
// 姓 Random.first()
console.log(Mock.Random.first());
// 名 Random.last()
console.log(Mock.Random.last());
// 直接生成整个名字
console.log(Mock.Random.name());
// name可以穿入true来加上中间名
// console.log(Mock.Random.name(true));

// 同样有中文版本
console.log(Mock.Random.cfirst());
console.log(Mock.Random.clast());
console.log(Mock.Random.cname());

//* Web
// url 可形成各种协议的url
console.log(Mock.Random.url());
// domain
console.log(Mock.Random.domain());
// protocol
console.log(Mock.Random.protocol());
// tld
console.log(Mock.Random.tld());
// email
console.log(Mock.Random.email());
// ip
console.log(Mock.Random.ip());

//* 地址
// 区域(华东，东北，华中，华南，华北，西南,西北)
console.log(Mock.Random.region());
// 省
console.log(Mock.Random.province());
// 市
console.log(Mock.Random.city());
// 市可以加上true，这样的话将把该市的省份也列出来
console.log(Mock.Random.city(true));
// 县区，或地级市，同样可加true
console.log(Mock.Random.county(true));

// zip
console.log(Mock.Random.zip());

//* 杂项
// 全局唯一标识符 guid 
console.log(Mock.Random.guid());
// 生成随机id
console.log(Mock.Random.id());
// 自增(每调用一次就加),可设置步长
console.log(Mock.Random.increment()); //1
console.log(Mock.Random.increment()); //2
console.log(Mock.Random.increment(100)); //120